1. Field of the Invention
The invention relates generally to graphical display of data, and in particular, to displaying a graph view of multiply connected objects.
2. Background Information
Visualization of and interaction with data helps users quickly understand the types of data available and their interrelationships. Often, sets of data are presented as lists, or tables with columns, depicting specific attributes of each instance of data. Analyzing and understanding the nature and state of units of data, and appreciating any subtle relationships and connections therebetween, can be difficult and time consuming. For example, in a screen display, large sets of textual data cannot fit on a single display without the user having to scroll or page, whereby a user cannot retain a view of all the data at once.
A conventional solution is to draw a graph of objects with lines indicating relationships between pairs of objects, and some arbitrary shape representing each instance of an object. Typically, the scale of the graph can be controlled, and the data arranged in such a way that all data or a selection of data can be viewed in a single screen. An example of this is a unified modeling language (UML) editor, which allows users to examine a set of object classes and the relationships between them. The user can move around the graph, zoom into items of interest and view details of specific classes (e.g., zoom into objects in the graph and identify relationships that exist between classes).
Impact analysis is a technique for finding the dependencies between objects. This is often used to find what objects in a system would be affected if a change occurred on a selected object. Generating and presenting a list of affected objects in tabular form does provide useful information but it can be difficult to interpret. It can be confusing to keep track of the direction of relationships, such as the difference between an object depending on the presence or state of another, or where the object is depended on by another object or objects.
Presenting object data information in a graphical format greatly enhances readability, showing relationships between objects, the direction of those relationships, to any arbitrary depth. The benefit is that all objects that would be affected by the proposed change to a single chosen object can be seen at a glance. Impact analysis typically functions by traversing relationships in the outbound direction, that is, away from the root object, to some arbitrary depth, and finding the objects at the ends of these relationships, and then by traversing relationships in a reverse direction for those objects with relationships that point towards the root object, and finding the objects at the source of these relationships. This results in a set of outbound results and a set of inbound results, with the root object being common to both.
A common approach in generating graphs suitable for presentation in such a way that the graphs are easy to read is to layout the objects in the graph as a hierarchy, where one node is the root of the graph, with descendant objects at levels of increasing depth. Graph drawing algorithms exist that can normalize and structure the data in such a way that edges span only between adjacent levels. Additionally, such algorithms can account for readability constraints such as minimizing the number of intersections of edges. See Sugiyama graph algorithm.
However, given a graph drawing algorithm that produces a hierarchical arrangement of graph nodes, and given impact analysis results for both outbound and inbound relationships, such conventional graph drawing algorithms cannot merge the two hierarchies of data into a common graph layout where there is a single root object. Further, when an object appears in both the outbound results and the inbound results, such conventional graph drawing algorithms arrange the graph and show only one instance of that object, which is an impediment in differentiating between inbound and outbound relationships.